<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>createRef</title>
    <style>
        .title{color:red}
    </style>
</head>
<body>
    <!-- 准备好一个容器 -->
    <div id="test"></div>


    <!-- 引入react核心库 -->
    <script src="../js/16/react.development.js" ></script>
    <!-- 引入react-dom，用于支持react操作DOM -->
    <script src="../js/16/react-dom.development.js"></script>
    <!-- 引入babel，用于将jsx转为js -->
    <script src="../js/babel.js" ></script>
    <script type="text/babel"> /*此处一定要写babel，否则无法识别jsx语法*/
        // 创建类式组件
        class Demo extends React.Component{
            /***
             * 1.通过onXxx属性指定事件处理函数
             *  a.React使用的是自定义事件，而不是原生DOM事件
             *  b.React中的事件是通过事件委托方式处理的（委托给组件最外层的元素）
             * 2.通过event.target得到发生事件的DOM元素对象
             */
            // 创建ref对象，一个只能用一个
            myRef = React.createRef()
            myRef2 = React.createRef()
            showData = () => {
                console.log(this.myRef.current.value)
            }
            showData2 = () => {
                console.log(this.myRef2.current.value)
            }
            render(){
                return (
                    <div>
                        <input ref={this.myRef} type="text" placeholder="点击按钮提示数据" />
                        <button onClick={this.showData}>点击提示右侧数据</button>
                        <input ref={this.myRef2} type="text" placeholder="失去焦点提示数据" onBlur={this.showData2} />
                    </div>
                )
            }
        }
        // 通过展开运算符批量传递属性
        ReactDOM.render(<Demo/>, document.getElementById('test'))
    </script>
</body>
</html>